home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / UNIXTOOL / GNU / TILEFORTH / TILE / TILE~ / !Tile / test / vogle < prev   
Text File  |  1992-04-20  |  3KB  |  153 lines

  1. .( Vogle 3d graphics library... ) cr
  2.  
  3. #include <tile$lib>.enumerates
  4.  
  5. enumerates
  6.  
  7. enum.type COLOURS
  8.     enum BLACK
  9.     enum RED
  10.     enum GREEN
  11.     enum YELLOW
  12.     enum BLUE
  13.     enum CYAN
  14.     enum MAGENTA
  15.     enum WHITE
  16. enum.end
  17.  
  18. enum.type PRIMITIVES
  19.     enum UNUSED
  20.     enum MARKER
  21.     enum PLANE
  22.     enum SPHERE
  23.     enum BOX
  24. enum.end
  25.  
  26. float string vogle
  27.  
  28. 1024.0 1280.0 f/ constant xcomp
  29.  
  30. variable handle
  31.  
  32. " vect" new handle !
  33.  
  34. vinit
  35.  
  36. 16 circleprecision
  37. false clipping
  38.  
  39. .( Front view ) cr
  40.  
  41. : front-view
  42.   -10.0 10.0 -10.0 10.0 -10.0 10.0 ortho
  43.     0.0  0.0 -10.0  0.0   0.0  0.0 0.0 lookat
  44.     0.0 -1.0 0.0 up
  45.     xcomp 1.0 1.0 scale
  46.     clear ;
  47.  
  48. : left-view
  49.   -10.0 10.0 -10.0 10.0 -10.0 10.0 ortho
  50.   -10.0  0.0  0.0  0.0   0.0  0.0 0.0 lookat
  51.     0.0 -1.0 0.0 up
  52.     1.0 1.0 xcomp scale
  53.     clear ;
  54.  
  55. .( Marker Object) cr
  56.  
  57. MARKER makeobj
  58.     -0.2  0.0  0.0 move
  59.      0.2  0.0  0.0 draw
  60.      0.0 -0.2  0.0 move
  61.      0.0  0.2  0.0 draw
  62.      0.0  0.0 -0.2 move
  63.      0.0  0.0  0.2 draw
  64. MARKER closeobj
  65.  
  66. .( Plane Object) cr
  67.  
  68. PLANE makeobj
  69.     makepoly
  70.         -1000.0 -1000.0 1000.0 1000.0 rect
  71.     closepoly
  72. PLANE closeobj
  73.  
  74. .( Sphere Object ) cr
  75.  
  76. SPHERE makeobj
  77.     0.0 0.0 1.0 circle
  78.  
  79.     pushmatrix
  80.         90.0 0.0 0.0 rotate
  81.         0.0 0.0 1.0 circle
  82.     popmatrix
  83.  
  84.     pushmatrix
  85.         0.0 90.0 0.0 rotate
  86.         0.0 0.0 1.0 circle
  87.     popmatrix
  88. SPHERE closeobj
  89.  
  90. .( Box Object ) cr
  91.  
  92. BOX makeobj
  93.     makepoly
  94.     ( One face )
  95.     1.0 1.0 1.0 move
  96.     1.0 -1.0 1.0 draw
  97.     1.0 -1.0 -1.0 draw
  98.     1.0 1.0 -1.0 draw
  99.     1.0 1.0 1.0 draw
  100.     closepoly
  101.     ( Next face )
  102.     makepoly
  103.     -1.0 1.0 1.0 draw
  104.     -1.0 -1.0 1.0 draw
  105.     1.0 -1.0 1.0 draw
  106.     1.0 1.0 1.0 draw
  107.     closepoly
  108.     ( Next face )
  109.     makepoly
  110.     -1.0 1.0 1.0 draw
  111.     -1.0 1.0 -1.0 draw
  112.     1.0 1.0 -1.0 draw
  113.     1.0 1.0 1.0 draw
  114.     closepoly
  115.     ( Next face )
  116.     makepoly
  117.     -1.0 -1.0 -1.0 move
  118.     -1.0 -1.0 1.0 draw
  119.     -1.0 1.0 1.0 draw
  120.     -1.0 1.0 -1.0 draw
  121.     -1.0 -1.0 -1.0 draw
  122.     closepoly
  123.     ( Next face )
  124.     makepoly
  125.     -1.0 1.0 -1.0 draw
  126.     1.0 1.0 -1.0 draw
  127.     1.0 -1.0 -1.0 draw
  128.     -1.0 -1.0 -1.0 draw
  129.     closepoly
  130.     ( Last face )
  131.     makepoly
  132.     1.0 -1.0 -1.0 draw
  133.     1.0 -1.0 1.0 draw
  134.     -1.0 -1.0 1.0 draw
  135.     -1.0 -1.0 -1.0 draw
  136.     closepoly
  137. BOX closeobj
  138.  
  139. : box
  140.     handle @ openwrite
  141.     WHITE colour
  142.     pushmatrix
  143.         -4.0 0.0 0.0 translate
  144.         2.0 1.0 4.0 scale
  145.         30.0 30.0 0.0 rotate
  146.         BOX callobj
  147.         MARKER callobj
  148.     popmatrix
  149.     closewrite ;
  150.  
  151. handle @ open front-view box
  152.  
  153.